Host computers in data storage systems access storage arrays, such as disk arrays, at a high rate of speed and with high reliability. To meet the demanding requirements of such systems, host computers are typically equipped with kernel drivers for managing critical I/O activities. The kernel drivers run within the kernels of their host computers' operating systems and efficiently direct data READs and WRITEs to their respective storage arrays. Often, host computers are connected to their arrays through multiple paths, and the kernel drivers are specially configured to select paths dynamically for conveying I/O requests to the arrays, so as to provide load balancing and failover. An example of a kernel driver that supports multiple paths is the PowerPath® driver from EMC Corporation of Hopkinton, Mass.
In a typical scenario, a host computer runs an application on behalf of a user. The application executes commands, including instructions for reading from and writing to an array. The kernel driver receives these instructions in the form of I/O requests, which the kernel driver processes and directs to the array.
Some kernel drivers for managing I/O requests collect performance data. In one scenario, a kernel driver collects performance data and various clients running on the host computer outside the kernel access the kernel driver to extract the performance data and perform calculations.